home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / tcxl32.arc / TCXLWIN.H < prev   
C/C++ Source or Header  |  1988-05-01  |  9KB  |  209 lines

  1.  
  2. /*
  3.    ┌──────────────────────────────────────────────────────────────────────────┐
  4.    │                                                                          │
  5.    │  TCXLWIN.H - TCXL (c) 1987, 1988 by Mike Smedley.                        │
  6.    │                                                                          │
  7.    │  This header file contains function prototypes and definitions for       │
  8.    │  windowing functions.                                                    │
  9.    │                                                                          │
  10.    └──────────────────────────────────────────────────────────────────────────┘
  11. */
  12.  
  13.  
  14. #if __STDC__
  15. #define _Cdecl
  16. #else
  17. #define _Cdecl cdecl
  18. #endif
  19.  
  20.  
  21. /*---------------------------[ Function Prototypes ]-------------------------*/
  22.  
  23. int      _Cdecl disktowin(char *fname);
  24. void     _Cdecl videoinit(void);
  25. int      _Cdecl wactiv(int whandle);
  26. int      _Cdecl wchgattr(int newattr);
  27. int      _Cdecl wclear(void);
  28. int      _Cdecl wclose(void);
  29. int      _Cdecl wcloseall(void);
  30. int      _Cdecl wclreol(void);
  31. int      _Cdecl wcopy(int nsrow,int nscol);
  32. char    *_Cdecl werrmsg(void);
  33. int      _Cdecl wgetc(void);
  34. int      _Cdecl wgetchf(char *valid);
  35. int      _Cdecl wgets(char *str);
  36. int      _Cdecl wgetns(char *str,int max);
  37. int      _Cdecl wgotoxy(int wrow,int wcol);
  38. int     *_Cdecl whide(int **wbuf);
  39. int      _Cdecl winpdef(int wrow,int wcol,char *str,int ftype,int fattr);
  40. int      _Cdecl winpread(void);
  41. int      _Cdecl winputsf(char *str,char *fmt);
  42. int      _Cdecl winpxcel(void);
  43. int      _Cdecl wintodisk(int srow,int scol,int erow,int ecol,char *fname);
  44. int      _Cdecl wmbardef(int wrow,int wcol,int attr,char *str,int tagchar);
  45. int      _Cdecl wmbarget(int barattr);
  46. int      _Cdecl wmbarxcel(void);
  47. int      _Cdecl wmove(int nsrow,int nscol);
  48. int      _Cdecl wopen(int srow,int scol,int erow,int ecol,int btype,int attr);
  49. int      _Cdecl wpgotoxy(int wrow,int wcol);
  50. int      _Cdecl wprintc(int wrow,int wcol,int attr,int ch);
  51. int      _Cdecl wprintf(const char *format,...);
  52. int      _Cdecl wprints(int wrow,int wcol,int attr,char *str);
  53. int      _Cdecl wputc(int ch);
  54. int      _Cdecl wputns(char *str,int width);
  55. int      _Cdecl wputs(char *str);
  56. int      _Cdecl wreadcur(int *wrow,int *wcol);
  57. void     _Cdecl wrestore(int *wbuf);
  58. int     *_Cdecl wsave(int srow,int scol,int erow,int ecol);
  59. int      _Cdecl wscanf(const char *format,...);
  60. int      _Cdecl wscroll(int count,int direction);
  61. int      _Cdecl wsetesc(int option);
  62. int      _Cdecl wsize(int nerow,int necol);
  63. int      _Cdecl wtextattr(int attr);
  64.  
  65.  
  66. /*----------------------[ structure of window records ]----------------------*/
  67.  
  68. struct  _wrecord {
  69.     int *wbuf;                          /*  address of window's buffer       */
  70.     int whandle;                        /*  window's handle                  */
  71.     unsigned char srow;                 /*  start row of window              */
  72.     unsigned char scol;                 /*  start column of window           */
  73.     unsigned char erow;                 /*  end row of window                */
  74.     unsigned char ecol;                 /*  end column of window             */
  75.     unsigned char row;                  /*  window's current cursor row      */
  76.     unsigned char column;               /*  window's current cursor column   */
  77.     unsigned char attr;                 /*  window's current text attribute  */
  78.     unsigned char btype;                /*  window's box type                */
  79.     unsigned char wattr;                /*  window's initial text attribute  */
  80. };
  81.  
  82.  
  83. /*-------------------[ variables used by window manager ]--------------------*/
  84.  
  85. extern struct _wrecord *_wrecord;      /*  array of window records           */
  86. extern int _wcurrent;                  /*  array subscript of active window  */
  87. extern int _werrno;                    /*  last window function error code   */
  88. extern int _whandle;                   /*  last assigned handle number       */
  89. extern int _wesc;                      /*  Escape checking flag              */
  90.  
  91.  
  92. /*-------------[ error codes returned from windowing functions ]-------------*/
  93.  
  94. #define W_NOERROR   0                   /*  no error                        */
  95. #define W_ALLOCERR  1                   /*  memory allocation error         */
  96. #define W_NOTFOUND  2                   /*  window handle not found         */
  97. #define W_NOACTIVE  3                   /*  no active (open) windows        */
  98. #define W_INVCOORD  4                   /*  invalid coordinates             */
  99. #define W_ESCPRESS  5                   /*  Escape key was pressed          */
  100. #define W_INVFORMT  6                   /*  invalid format string           */
  101. #define W_NOINPDEF  7                   /*  no inputs defined               */
  102. #define W_INVFTYPE  8                   /*  invalid field type              */
  103. #define W_STRLONG   9                   /*  string too long for window      */
  104. #define W_NOBARDEF  10                  /*  no bar menu records defined     */
  105. #define W_INVTAGCH  11                  /*  invalid tag character           */
  106.  
  107.  
  108. /*---------------------[ direction codes for wscroll() ]---------------------*/
  109.  
  110. #define DOWN        0
  111. #define UP          1
  112.  
  113.  
  114. /*---------------------[ window input record definition ]--------------------*/
  115.  
  116. struct _winprec {
  117.     unsigned char wrow;                 /*  start of input - window row     */
  118.     unsigned char wcol;                 /*  start of input - window column  */
  119.     char *str;                          /*  address of receiving string     */
  120.     int length;                         /*  length of receiving string      */
  121.     char *buf;                          /*  address of temp receive string  */
  122.     unsigned char ftype;                /*  input field type                */
  123.     unsigned char fattr;                /*  input field attribute           */
  124. };
  125.  
  126.  
  127. /*-----------------[ variables used by window input functions ]--------------*/
  128.  
  129. extern struct _winprec *_winprec;       /*  window input record array       */
  130. extern int _winplast;                   /*  highest inp rec array subscript */
  131. extern int _winpattr;                   /*  attribute of input fields       */
  132.  
  133.  
  134. /*------------------[ window bar menu record definition ]--------------------*/
  135.  
  136. struct _wmbarrec {
  137.     unsigned char wrow;                 /*  start of text opt - window row  */
  138.     unsigned char wcol;                 /*  start of text opt - window col  */
  139.     unsigned char attr;                 /*  attribute of text option        */
  140.     char *str;                          /*  string containing text option   */
  141.     unsigned char tagchar;              /*  menu bar tag character          */
  142. };
  143.  
  144.  
  145. /*-------------[ variables used by window menu bar functions ]---------------*/
  146.  
  147. extern struct _wmbarrec *_wmbarrec;     /*  window menu bar record array    */
  148. extern int _wmbarlast;                  /*  highest menu bar rec subscript  */
  149.  
  150.  
  151. /*-----------------------[ video RAM segment address ]-----------------------*/
  152.  
  153. extern unsigned _videoseg;
  154.  
  155.  
  156. /*--------------[ attribute codes for functions that use them ]--------------*/
  157.  
  158.     /*  attribute codes are created by ORing the codes for foreground
  159.         color, background color, and optionally blink, together.  For
  160.         example, to create an attribute code for light blue on green,
  161.         you would use LBLUE|_GREEN and to make the foreground blink,
  162.         you would add |BLINK onto the end of that.                      */
  163.  
  164. #ifndef BLACK                           /*  foreground colors  */
  165. #define BLACK       0                   
  166. #define BLUE        1
  167. #define GREEN       2
  168. #define CYAN        3
  169. #define RED         4
  170. #define MAGENTA     5
  171. #define BROWN       6
  172. #define YELLOW      14
  173. #define WHITE       15
  174. #endif
  175. #ifndef LGREY
  176. #define LGREY       7                   /*  TCXL abbreviates LIGHT as L    */
  177. #define DGREY       8                   /*  and DARK as D for ease of use  */
  178. #define LBLUE       9
  179. #define LGREEN      10
  180. #define LCYAN       11
  181. #define LRED        12
  182. #define LMAGENTA    13
  183.  
  184. #define _BLACK      0                   /*  background colors  */
  185. #define _BLUE       16
  186. #define _GREEN      32
  187. #define _CYAN       48
  188. #define _RED        64
  189. #define _MAGENTA    80
  190. #define _BROWN      96
  191. #define _LGREY      112
  192.  
  193. #define BLINK       128                 /*  blink attribute  */
  194. #endif
  195.  
  196.  
  197. /*-----------------------[ Macro-Function Definitions ]----------------------*/
  198.  
  199. #ifndef attrib
  200. #define attrib(f,b,i,bl)    ((b<<4)|(f)|(i<<3)|(bl<<7))
  201. #endif
  202. #ifndef clrwin
  203. #define clrwin(a,b,c,d)     gotoxy_(a,b);fill(a,b,c,d,' ',(readchat()>>8))
  204. #endif
  205. #define wisactiv(a)         ((a==_wcurrent)?1:0)
  206. #define wnopen()            (_wcurrent+1)
  207. #define wunhide(a)          whide(a)
  208.  
  209.